home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 June: Reference Library / Dev.CD Jun 95 / Dev.CD Jun 95.toast / What's New? / New System Software Extensions / QuickDraw 3D ß / Programming / Interfaces / QD3DRenderer.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-04  |  2.6 KB  |  97 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DRenderer.h                                             **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Renderer types and routines                                   **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1992-1994 Apple Computer, Inc.  All rights reserved.     **
  11.  **                                                                          **
  12.  **                                                                          **
  13.  *****************************************************************************/
  14. #ifndef QD3DRenderer_h
  15. #define QD3DRenderer_h
  16.  
  17. #if PRAGMA_ONCE
  18.     #pragma once
  19. #endif
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif    /* __cplusplus */
  24.  
  25. EXPORT TQ3RendererObject Q3Renderer_NewFromType(
  26.     TQ3ObjectType            rendererObjectType);
  27.  
  28. EXPORT TQ3ObjectType Q3Renderer_GetType(
  29.     TQ3RendererObject        renderer);
  30.  
  31. EXPORT TQ3Status Q3Renderer_Flush(
  32.     TQ3RendererObject        renderer,
  33.     TQ3ViewObject            view);
  34.     
  35. EXPORT TQ3Status Q3Renderer_Sync(
  36.     TQ3RendererObject        renderer,
  37.     TQ3ViewObject            view);
  38.  
  39.  
  40. /******************************************************************************
  41.  **                                                                             **
  42.  **                        Interactive Renderer Specific Functions                 **
  43.  **                                                                             **
  44.  *****************************************************************************/
  45.  
  46. /* CSG IDs attribute */
  47. #define kQ3AttributeType_ConstructiveSolidGeometryID        Q3_OBJECT_TYPE('c','s','g','i')
  48.  
  49. /* Object IDs, to be applied as attributes on geometries */
  50. #define kQ3SolidGeometryObjA 0
  51. #define kQ3SolidGeometryObjB 1
  52. #define kQ3SolidGeometryObjC 2
  53. #define kQ3SolidGeometryObjD 3
  54. #define kQ3SolidGeometryObjE 4
  55.  
  56. /* Possible CSG equations */
  57.  
  58. typedef enum TQ3CSGEquation {
  59.     kQ3CSGEquationAandB            = (int) 0x88888888,
  60.     kQ3CSGEquationAandnotB         = 0x22222222,
  61.     kQ3CSGEquationAanBonCad        = 0x2F222F22,
  62.     kQ3CSGEquationnotAandB        = 0x44444444,
  63.     kQ3CSGEquationnAaBorCanB    = 0x74747474
  64. } TQ3CSGEquation;
  65.  
  66. EXPORT TQ3Status Q3InteractiveRenderer_SetCSGEquation(
  67.     TQ3RendererObject        renderer,
  68.     TQ3CSGEquation            equation);
  69.  
  70. EXPORT TQ3Status Q3InteractiveRenderer_GetCSGEquation(
  71.     TQ3RendererObject        renderer,
  72.     TQ3CSGEquation            *equation);
  73.  
  74. EXPORT TQ3Status Q3InteractiveRenderer_SetPreferences(
  75.     TQ3RendererObject        renderer,
  76.     long                    vendorID,
  77.     long                    engineID);
  78.  
  79. EXPORT TQ3Status Q3InteractiveRenderer_GetPreferences(
  80.     TQ3RendererObject        renderer,
  81.     long                    *vendorID,
  82.     long                    *engineID);
  83.     
  84. EXPORT TQ3Status Q3InteractiveRenderer_SetDoubleBufferBypass(
  85.     TQ3RendererObject        renderer,
  86.     TQ3Boolean                bypass);
  87.  
  88. EXPORT TQ3Status Q3InteractiveRenderer_GetDoubleBufferBypass(
  89.     TQ3RendererObject        renderer,
  90.     TQ3Boolean                *bypass);
  91.     
  92. #ifdef __cplusplus
  93. }
  94. #endif    /* __cplusplus */
  95.  
  96. #endif  /*  QD3DRenderer_h  */
  97.